home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / asm / demos / howtoskinacat / fractalcube / picpreprocessmat.s < prev    next >
Text File  |  1980-01-03  |  2KB  |  107 lines

  1. ùúùúÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ïÿó»Ï;------------------T--------T
  2. *******************************************************************************
  3. **
  4. **  Picture-preprocessor
  5. **
  6. **  output:
  7. **  a0=save start
  8. **  a1=save end
  9. **
  10. *******************************************************************************
  11.  
  12. Begin:    lea    RawPicture(pc),a0
  13.     lea    DotPicture(pc),a1
  14.     bsr    PicPreprocess
  15.     lea    DotPicture(pc),a0
  16.     lea    CodePicture,a1
  17.     lea    CodePointers,a2
  18.     bsr    GenerateCode
  19.     lea    CodePointers,a0
  20.     rts
  21.  
  22. GenerateCode:    move.w    #208-1,d3
  23.     move.l    a1,a4
  24. .nextsojle    move.l    a1,a3
  25.     sub.l    a4,a3
  26.     move.l    a3,(a2)+
  27.     moveq    #0,d2    ;gammel farve
  28. .sojleloop    moveq    #0,d0
  29.     move.b    (a0)+,d0    ;pos
  30.     cmp.b    #$ff,d0
  31.     bne.b    .ok
  32.     move.w    #$4E75,(a1)+
  33.     dbra    d3,.nextsojle
  34.     rts
  35. .ok    move.w    Instr1(pc),(a1)+
  36.     add.w    d0,d0
  37.     move.w    d0,(a1)+
  38.     move.b    (a0)+,d1    ;farve
  39.  
  40.     eor.b    d1,d2
  41.     btst    #0,d2
  42.     beq.b    .plan0ok
  43.     move.w    Instr2(pc),(a1)+
  44.     clr.w    (a1)+
  45. .plan0ok    btst    #1,d2
  46.     beq.b    .plan1ok
  47.     move.w    Instr2(pc),(a1)+
  48.     move.w    #44,(a1)+
  49. .plan1ok
  50.     move.b    d1,d2
  51.     bra.b    .sojleloop
  52.  
  53. Instr1:    move.w    0(a0),d0        ;0=ypos
  54. Instr2:    bchg    d1,(a1,d0.w)
  55.  
  56.  
  57.  
  58. PicWidth:    EQU    26
  59.  
  60. PicPreprocess:    moveq    #26-1,d3    ;bytesøjler
  61. .byteloop    moveq    #7,d2    ;bitnummer
  62. .bitloop    move.w    #208-1,d6
  63.     moveq    #0,d5    ;gammel farve
  64.     moveq    #(256-208)/2,d0
  65.  
  66. .sojleloop    moveq    #0,d4    ;farve
  67.     btst    d2,(a0)
  68.     beq.b    .plan1ok
  69.     bset    #0,d4
  70. .plan1ok    btst    d2,Picwidth(a0)
  71.     beq.b    .plan2ok
  72.     bset    #1,d4
  73. .plan2ok
  74.     cmp.b    d4,d5
  75.     beq.b    .nextline
  76.  
  77.     move.b    d4,d5
  78.     move.b    d0,(a1)+
  79.     move.b    d5,(a1)+
  80. .nextline    lea    PicWidth*2(a0),a0
  81.     addq.w    #1,d0
  82.     dbra    d6,.sojleloop
  83.     tst.b    d5
  84.     beq.b    .zero
  85.     move.b    d0,(a1)+
  86.     clr.b    (a1)+
  87. .zero    st    (a1)+
  88.     lea    -208*PicWidth*2(a0),a0
  89.     dbra    d2,.bitloop
  90.     addq.w    #1,a0
  91.     dbra    d3,.byteloop
  92.     rts
  93.  
  94.  
  95.  
  96.  
  97.  
  98.     INCDIR    "Work:Code/Sources/HTSAC/FractalCube/"
  99. RawPicture:    INCIFF    "Matilde.brush"
  100.  
  101. DotPicture:    blk.b    100000,0
  102.  
  103. CodePointers:    blk.l    208,0
  104. CodePicture:    blk.b    100000,0
  105.  
  106.  
  107.